Security News
pnpm 10.0.0 Blocks Lifecycle Scripts by Default
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
mdast-util-to-nlcst
Advanced tools
mdast utility to transform to nlcst.
Note: You probably want to use
remark-retext
.
npm:
npm install mdast-util-to-nlcst
var toNLCST = require('mdast-util-to-nlcst')
var inspect = require('unist-util-inspect')
var English = require('parse-english')
var remark = require('remark')
var vfile = require('vfile')
var file = vfile('Some *foo*sball.')
var tree = remark().parse(file)
var nlcst = toNLCST(tree, file, English)
console.log(inspect(nlcst))
Yields:
RootNode[1] (1:1-1:17, 0-16)
└─ ParagraphNode[1] (1:1-1:17, 0-16)
└─ SentenceNode[4] (1:1-1:17, 0-16)
├─ WordNode[1] (1:1-1:5, 0-4)
│ └─ TextNode: "Some" (1:1-1:5, 0-4)
├─ WhiteSpaceNode: " " (1:5-1:6, 4-5)
├─ WordNode[2] (1:7-1:16, 6-15)
│ ├─ TextNode: "foo" (1:7-1:10, 6-9)
│ └─ TextNode: "sball" (1:11-1:16, 10-15)
└─ PunctuationNode: "." (1:16-1:17, 15-16)
toNlcst(tree, file, Parser[, options])
Transform a tree in mdast, with a corresponding virtual file, into nlcst.
node
Tree in mdast with positional information (MdastNode
).
file
Virtual file (VFile
).
parser
nlcst parser (Function
).
For example, parse-english
, parse-dutch
, or
parse-latin
.
options.ignore
List of types to ignore (Array.<string>
).
'table'
, 'tableRow'
, and 'tableCell'
are always ignored.
options.source
List of types to mark as source (Array.<string>
).
'inlineCode'
is always marked as source.
ignore
Say we have the following file example.md
:
A paragraph.
> A paragraph in a block quote.
…and if we now transform with ignore: ['blockquote']
, we get:
RootNode[2] (1:1-3:1, 0-14)
├─ ParagraphNode[1] (1:1-1:13, 0-12)
│ └─ SentenceNode[4] (1:1-1:13, 0-12)
│ ├─ WordNode[1] (1:1-1:2, 0-1)
│ │ └─ TextNode: "A" (1:1-1:2, 0-1)
│ ├─ WhiteSpaceNode: " " (1:2-1:3, 1-2)
│ ├─ WordNode[1] (1:3-1:12, 2-11)
│ │ └─ TextNode: "paragraph" (1:3-1:12, 2-11)
│ └─ PunctuationNode: "." (1:12-1:13, 11-12)
└─ WhiteSpaceNode: "\n\n" (1:13-3:1, 12-14)
source
Say we have the following file example.md
:
A paragraph.
> A paragraph in a block quote.
…and if we now transform with source: ['blockquote']
, we get:
RootNode[3] (1:1-3:32, 0-45)
├─ ParagraphNode[1] (1:1-1:13, 0-12)
│ └─ SentenceNode[4] (1:1-1:13, 0-12)
│ ├─ WordNode[1] (1:1-1:2, 0-1)
│ │ └─ TextNode: "A" (1:1-1:2, 0-1)
│ ├─ WhiteSpaceNode: " " (1:2-1:3, 1-2)
│ ├─ WordNode[1] (1:3-1:12, 2-11)
│ │ └─ TextNode: "paragraph" (1:3-1:12, 2-11)
│ └─ PunctuationNode: "." (1:12-1:13, 11-12)
├─ WhiteSpaceNode: "\n\n" (1:13-3:1, 12-14)
└─ ParagraphNode[1] (3:1-3:32, 14-45)
└─ SentenceNode[1] (3:1-3:32, 14-45)
└─ SourceNode: "> A paragraph in a block quote." (3:1-3:32, 14-45)
remark-retext
— retext support for remarkhast-util-to-nlcst
— Transform hast to nlcsthast-util-to-mdast
— Transform hast to mdastmdast-util-to-hast
— Transform mdast to hastSee contributing.md
in syntax-tree/.github
for ways to get
started.
See support.md
for ways to get help.
This project has a Code of Conduct. By interacting with this repository, organisation, or community you agree to abide by its terms.
FAQs
mdast utility to transform to nlcst
The npm package mdast-util-to-nlcst receives a total of 82,448 weekly downloads. As such, mdast-util-to-nlcst popularity was classified as popular.
We found that mdast-util-to-nlcst demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.